home *** CD-ROM | disk | FTP | other *** search
/ Mac OS 9 Serial Number Archive / SN Archive 2023.11.04.toast / TSNG / TSNG 1.0.9 / Read Me next >
Encoding:
Text File  |  1996-06-03  |  12.8 KB  |  275 lines  |  [TEXT/R*ch]

  1. The SN# Gen
  2. ===========
  3.  
  4. As you should already know this app will generate (to a text file) serial/registration numbers (randomizing whenever possible) for various Macintosh software.
  5.  
  6. It should go without saying, but there always seems to be a few morons out there so i'll say it anyway:
  7.  
  8. ••• DO NOT USE OR DISTRIBUTE THIS APP IN NON-ELITE ENVIRONMENTS…  •••
  9. •••           DOING SO WILL ONLY RUIN IT FOR EVERYONE             •••
  10. •••  THE FIRST TIME I HEAR OF A LEAK OF THIS APP WILL BE THE LAST •••
  11. •••                   THINK ABOUT IT…ENOUGH SAID                  •••
  12.  
  13. I ask that you do not include numbers generated by this app (at least not in wholesale fashion) in other reference lists, since: A) This app generates different numbers (whenever possible) each time it is run so that there is no quick/painless counter measure to it; B) doing so would only help to counter its effectiveness (mainly by shortening the longevity of the SN# algorithms staying static); C) it would just increase the file size of the other lists while adding little value beyond the first number.
  14.  
  15. The date and time at which the output file was generated is now included at the start of the file -- this is the zero date that all the chronologically dependent algorithms use in their calculations.
  16.  
  17. The names specified for 'Owner Name' and 'Macintosh Name' in the 'Sharing Setup' control panel are now the first two user names used for generating serial numbers from.  However this info is not saved to the 'Generated SN#s' file for security reasons -- instead you will see '<Sharing Owner Name>' and '<Sharing Machine Name>'.  This change supports the few programs which require using the 'correct' user and/or machine name to fully enable themselves. (eg: the Dejal products)
  18.  
  19. Currently you must use a resource editor if you wish to change the user/company names (you may specify up to 20) that are used during generation.  You may also change the number of copies to be licensed for (simultaneous users 1…9999, default is 10) and the number of serial numbers to generate (1…50 [this # is independent of the # of names you use], default is 10) for each product.  These values are stored in 'STR#' resources that are labeled so that changing them is  self explanatory.  In a future release i'll probably get these from a seperate text file in order to make customizing easier.
  20.  
  21. The generation of large tables is disabled by default, but you may enable it by changing the 'STR '#129 resource. The only large table implemented so far is for System's Twilight.
  22.  
  23. Ocassionally you will see output of the form:
  24.  
  25. Illegal name:    '<the illegal name>'
  26.  
  27. This only occurs when the given user name does not meet all the conditions placed upon it -- this is almost always due to the name being too short or containing only white space. (Don't be a moron -- using white space only, prefixed, or suffixed names is just dumb)
  28.  
  29. All of the serial number routines were tested with at least two numbers and usually more - however it is still possible that an error may have crept in, or a subtle point may have been missed during reverse engineering that only shows up some of the time --- so if you encounter an entry that doesn't work make sure you've got at least the given version of the product in question.  If it still won't work complain with the complete details and it will (probably) get fixed.
  30.  
  31. If you have new or better algorithms (in some cases there is sufficient ambiguity [not always intended!] in the checking algorithm to allow multiple solutions to the inversion problem, with complete generality being the nicest but hardest to obtain) for current (ie: non-legacy) products feel free to submit them and a few examples of _known valid_ codes. (most useful would be C code that actually compiles - but intelligeble pseudo code will do)
  32.  
  33. Another item that would be useful is the actual _correct_ format of serial numbers for products which this app generates numbers for.  (in the case of a discrepancy only -- most of the time it is possibly to fully invert the checking algorithm and thus obtain the format of the serial number, but not always, in which case a reasonable/arbitrary _working_ guess is made)
  34.  
  35. If there is some _current_ product you wish to see included here that _requires_ (ie: is dependent upon user name and/or number of copies or needs unique network serial numbers) a generator feel free to request it. 
  36.  
  37. MISSION STATEMENT:  Copy protection (CP) is an annoying nuisance that is ineffective.  Serial number generators force software publishers to either: Accept the fact that their CP scheme is useless (possibly/hopefully abandoning it and the overhead of managing serial numbers) or; change their CP method/scheme and issue new serial numbers to their entire user-base for every release of their software.  In this way the easy counter-counter-measure (of simply just checking for known elite name/password combos with each new release) that some authors (eg: Realmz's author) currently take is eliminated (since they won't know what names/numbers to target).
  38.  
  39. Future release versions will entirely supersede this release so there is _absolutely no need_ to keep old versions lying around.
  40.  
  41. Supported Products
  42. ==================
  43. 4D Online Help
  44. Aladdin Desktop Tools
  45. Apeiron
  46. AXS Online Reader
  47. Barrack
  48. CalcWorks
  49. CD Directory
  50. Chiral
  51. ColorSwitch
  52. Compact Pro
  53. Conflict Catcher
  54. Custom Menus
  55. Cyber Finder
  56. DeBabelizer
  57. Dejal QuickEncrypt
  58. Dejal SndCataloguer
  59. Dejal SndConverter Lite/Pro
  60. Dejal SndPlayer
  61. Dejal Text Utilities (TextConverter/TextMerge/TextSplitter)
  62. Developer VISE
  63. Developer VISE Lite
  64. DeskPicture
  65. DiskDup Pro
  66. DiskTools Collection
  67. DiskTracker
  68. Dome Wars
  69. Eclipse
  70. File Buddy
  71. FontBox
  72. Giza
  73. GraphicConverter
  74. MacSki
  75. Maelstrom
  76. MathType
  77. MultiClip Pro
  78. Nisus Writer
  79. Now Bundle
  80. Now Contact
  81. Now Quick&Easy
  82. Now UpToDate
  83. Now Utilities
  84. PowerBar Pro
  85. PowerReplace
  86. Ram Disk Saver
  87. Realmz
  88. Realmz - Assault on Giant Mountain
  89. Realmz - Castle in the Clouds
  90. Realmz - Prelude to Pestilence
  91. ScrapIt Pro
  92. Sleeper
  93. Smaller Installer
  94. Snapz
  95. SoundEdit 16
  96. Stuffit Deluxe
  97. Stuffit InstallerMaker
  98. Swoop
  99. Systems Twilight
  100. TechTool Pro
  101. Ultima III
  102. UltraFind
  103. Updater VISE
  104. URL Manager
  105. Versatile Pro
  106. Virtual
  107.  
  108.  
  109. Miscellania for would be CP Reverse Engineers
  110. =============================================
  111.  
  112. There a only a few basic non-keydisk, non-HW Dongle copy protection schemes in wide use:
  113.  
  114. 1)    Just a SN#/Reg Code (and possibly version#/id) that has certain
  115.     mathematical/string properties.
  116. 2)  A Name/ID (given or enterable) field, a copies_Licensed field, version#,
  117.     and SN#/Reg Code which is derived by manipulating and combining the Name/ID
  118.     field and the copies_Licensed.
  119. 3)    A time (date) based/limited SN#/Reg Code of type #1 or #2 above.
  120.  
  121. All of these protection schemes can in general be circumvented by a process of reverse engineering the SN# checking algorithm(s) during runtime (by using a debugger).  In general you try to get an interrupt at or near the beginning of the SN# checking code (this step can require some insight - but 95% of the time placing a local ATrap break on GetIText, StringToNum, NumToString, DisposeDialog, HiliteControl, and/or ModalDialog will work).  Once you find the start of the checking code you simply (or sometimes not so simply) symbolically disassemble the assembly code into pseudo or C code (I use a mixture myself).  Ninety percent of the time you will see some code which reads in all the user input fields (possibly upper or lower casing them), checks to see if they are within a certain length and data type ranges (eg: Name>=4 chars with no digits, sn#=digits and >0).  After these preliminaries you get to the actual heart of the method used.  Typically you find code that does any/all of the following type of actions in various combinations:
  122.  
  123. A)    Copy/Splice field(s) or subfield(s) to/into new variable(s). (ie BlockMove)
  124. B)  Convert a string/character (not necessarily numeric) to a numeric variable
  125.     via StringToNum or a custom conversion routine (often the base involved is
  126.     not 10 but a prime or power of 2 such as 8,16, and 32). [or, inversely 
  127.     convert a number to a base b string]
  128. C)  Add/multiply/eor/ect... up the value of the characters in a string -
  129.     possibly including the length byte in the case of pascal strings.
  130. D)    Perform mathematical operations (often via library calls) such as integer
  131.     division (/), remainder upon integer division (mod,%), exclusive-oring
  132.     (xor,eor,^), oring (or,|), multiplication, addition, and subtraction. (note
  133.     be careful to observe the size and sign of the operations - ie byte, word,
  134.     long and signed or unsigned).
  135. E)    read/load in data from an internal table.  (one table of $100 longwords is
  136.     particularily popular)
  137. F)  do 1 of n manipulations as selected by the value/state of some data.
  138. G)    loop over all or some of the elements in a string/number and perform any
  139.     of these actions for each element.
  140.  
  141. The last step in the SN# checking code is almost always the direct comparison of two values (usually longwords, but sometimes character strings) -- although sometimes the comparison is distributed throughout the checking algorithm calculation itself. Sometimes one these values is simply just the numerical value of your SN#, but more often the slightly indirect method of mangling both your SN#/reg code and all other fields into character string or numeric values and then comparing them is used.  This second approach and generalizations upon it usually prove more difficult to invert in general -- as it requires reversing (at least partially inverting) a greater number of steps, often with more restrictions on intermediate values as opposed to restrictions on the terminal or input variables.
  142.  
  143. Version History
  144. ===============
  145.  
  146. 1.1.0 (DNE yet… this is a 'to do' list for me)
  147. -----
  148. include arbitrary length longint library and implement generator for loanPro
  149.  
  150. 1.0.9 (another incremental update that satifies some requests)
  151. -----
  152. New generators…
  153.  
  154. Custom Menus 1.0.x (1.0)
  155. DeskPicture 4.0.x (4.0.2)
  156. Escape Velocity 1.0.x (1.0.0)
  157. Sleeper 2.0.x (2.0.3)
  158. Smaller Installer 2.0.x (2.0)
  159. Virtual 1.2.x (1.2.4)
  160.  
  161. 1.0.8 (large table generation made user configurable)
  162. -----
  163. added a switch for the generation of large tables ('STR '#129), thus;
  164. the "System's Twilight Passwords" file is no longer included.
  165. updated the supported products list to include the 1.0.7 additions… (whoops!)
  166.  
  167. New generators…
  168.  
  169. MacSki 1.6.x (1.6)
  170. Nisus Writer 4.1.x (4.1.3)
  171. PowerReplace 4.5.x (4.5.5)
  172.  
  173. 1.0.7 (another minor update with some tweaking)
  174. -----
  175. added finder icons and balloon help string.
  176. output TEXT file creator made user configurable. (change 'STR ' #128)
  177.  
  178. Added yet more generators still…
  179.  
  180. Conflict Catcher 3.x.x (3.0.4)
  181. MultiClip Pro 3.2 (3.2alpha)
  182. Ram Disk Saver 2.0.x (2.0)
  183. URL Manager 1.1.x (1.1.4)
  184.  
  185. 1.0.6 (added header time stamp and a few new generators)
  186. -----
  187. As a aid to maintenance I'm changing the format used to list new generators to include, in brackets, the latest version actually tested.
  188.  
  189. Added Generator for:
  190.  
  191. CalcWorks 1.5.x (1.5.1)
  192. CD Directory 1.0.x (1.0.2)
  193. FontBox 1.7.x (1.7.1)       [only 3 unique SN#'s are possible per day]
  194. SoundEdit 16 2.0.x (2.0)
  195.  
  196. 1.0.5 (in case you were wondering 1.0.4 only lasted a couple of hours…)
  197. -----
  198. Changed some of the default names to coincide with the names that Bookworm is using so that it is easier to (further) verify my code against (a greater number of) known valid serial numbers.
  199.  
  200. Added Generator for:
  201.  
  202. DiskTracker 1.0.x (1.0.2)
  203.  
  204. 1.0.4 (a few new generators plus major internal restructuring)
  205. -----
  206. Sharing Setup Owner/Machine names are now used as the first two user names.
  207. Reordered output so products are listed in _mostly_ alphabetical order.
  208.  
  209. Added Generators for:
  210.  
  211. Now Utilities 6.0 (6.0)
  212. Dejal QuickEncrypt 2.x (2.1)
  213. Dejal SndConverter Lite/Pro 2.x (2.3)
  214. Dejal SndCataloguer 2.x (2.3)
  215. Dejal SndPlayer 2.x (2.3)
  216. Dejal TextUtilities (TextConverter 1.x/TextMerge 2.x/TextSplitter 2.x)
  217.  
  218. 1.0.3 (now compiled with CodeWarrior 8 - the lmodu glue code bug is no more)
  219. -----
  220. Added Generators for:
  221.  
  222. 4D Online Help 3.0.x (3.0.5)
  223. Apeiron
  224. Barrack 1.0.x
  225. Chiral
  226. ColorSwitch 2.3.x (2.3.0)
  227. DiskDup Pro 1.0.3 (1.0.3)
  228. Eclipse 3.x.x
  229. File Buddy 3.x.x (3.4.3)
  230. Giza 2.x.x (2.0.0)
  231. Maelstrom
  232. MathType 3.x
  233. PowerBar Pro 2.5.x (2.5)
  234. Snapz
  235. Swoop
  236. TechTool Pro 1.0.x (1.0.1)
  237. UltraFind 2.x.x (2.2)
  238.  
  239. 1.0.2 (Initial release under the name 'The SN# Gen')
  240. -----
  241. Added Generators for:
  242.  
  243. AXS Online Reader 1.0.x
  244. Aladdin Desktop Tools 1.0.x (1.0.1)
  245. Compact Pro 1.5.x
  246. Cyber Finder 2.x
  247. DeBabelizer 1.6.x
  248. DiskTools Collection 3.x.y
  249. Dome Wars 1.x.x
  250. GraphicConverter 2.x.x (2.4)
  251. Now Bundle 3.5.x
  252. Now Contact 3.5.x
  253. Now Quick&Easy 1.0.x
  254. Now UpToDate 3.5.x
  255. Now Utilities 5.0.x (5.0.2)
  256. Realmz 2.x.x
  257. Realmz Assault on Giant Mountain
  258. Realmz Castle in the Clouds
  259. Realmz Prelude to Pestilence
  260. ScrapIt Pro 5.x.x
  261. Smaller Installer 1.1.x
  262. Stuffit Deluxe 3.5.x thru 4.0.x
  263. Stuffit InstallerMaker 2.0.x
  264. Systems Twilight 1.0.x Access Codes & Passwords
  265. Ultima III 1.x
  266. Versatile Pro 1.6.x
  267.  
  268. 1.0.1,1.0 (premature proof of concept releases)
  269. ---------
  270. Generators for:
  271.  
  272. Developer VISE 3.5
  273. Developer VISE Lite 3.5
  274. Updater VISE 1.0.1
  275.